home *** CD-ROM | disk | FTP | other *** search
/ Team Palmtops 7 / Palmtops_numero07.iso / WinCE / SDKWindowsCE / HandHeldPCPro30 / sdk.exe / Jupiter SDK / data1.cab / ATL_Samples / sketch / sketcctl.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-02-19  |  3.4 KB  |  109 lines

  1. // SketcCtl.h : Declaration of the CSketcCtl
  2.  
  3. #ifndef __SKETCCTL_H_
  4. #define __SKETCCTL_H_
  5.  
  6. #include "resource.h"       // main symbols
  7.  
  8.  
  9. /////////////////////////////////////////////////////////////////////////////
  10. // CSketcCtl
  11. class ATL_NO_VTABLE CSketcCtl : 
  12.     public CComObjectRootEx<CComSingleThreadModel>,
  13.     public CComCoClass<CSketcCtl, &CLSID_SketcCtl>,
  14.     public CComControl<CSketcCtl>,
  15.     public CStockPropImpl<CSketcCtl, ISketcCtl, &IID_ISketcCtl, &LIBID_SKETCHLib>,
  16.     public IProvideClassInfo2Impl<&CLSID_SketcCtl, NULL, &LIBID_SKETCHLib>,
  17.     public IPersistStreamInitImpl<CSketcCtl>,
  18.     public IPersistStorageImpl<CSketcCtl>,
  19.     public IQuickActivateImpl<CSketcCtl>,
  20.     public IOleControlImpl<CSketcCtl>,
  21.     public IOleObjectImpl<CSketcCtl>,
  22.     public IPersistPropertyBagImpl<CSketcCtl>,
  23.     public IOleInPlaceActiveObjectImpl<CSketcCtl>,
  24.     public IViewObjectExImpl<CSketcCtl>,
  25.     public IOleInPlaceObjectWindowlessImpl<CSketcCtl>,
  26.     public IDataObjectImpl<CSketcCtl>,
  27.     public ISupportErrorInfo,
  28.     public ISpecifyPropertyPagesImpl<CSketcCtl>
  29. {
  30. public:
  31.     CSketcCtl()
  32.     {
  33.         bLBDown = FALSE; 
  34.         m_PenWidth = 1;
  35.     }
  36.  
  37. DECLARE_REGISTRY_RESOURCEID(IDR_SKETCCTL)
  38.  
  39. BEGIN_COM_MAP(CSketcCtl)
  40.     COM_INTERFACE_ENTRY(ISketcCtl)
  41.     COM_INTERFACE_ENTRY(IDispatch)
  42.     COM_INTERFACE_ENTRY_IMPL(IViewObjectEx)
  43.     COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject2, IViewObjectEx)
  44.     COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject, IViewObjectEx)
  45.     COM_INTERFACE_ENTRY_IMPL(IOleInPlaceObjectWindowless)
  46.     COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleInPlaceObject, IOleInPlaceObjectWindowless)
  47.     COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleWindow, IOleInPlaceObjectWindowless)
  48.     COM_INTERFACE_ENTRY_IMPL(IOleInPlaceActiveObject)
  49.     COM_INTERFACE_ENTRY_IMPL(IOleControl)
  50.     COM_INTERFACE_ENTRY_IMPL(IOleObject)
  51.     COM_INTERFACE_ENTRY_IMPL(IPersistPropertyBag)
  52.     COM_INTERFACE_ENTRY_IMPL(IQuickActivate)
  53.     COM_INTERFACE_ENTRY_IMPL(IPersistStorage)
  54.     COM_INTERFACE_ENTRY_IMPL(IPersistStreamInit)
  55.     COM_INTERFACE_ENTRY_IMPL(ISpecifyPropertyPages)
  56.     COM_INTERFACE_ENTRY_IMPL(IDataObject)
  57.     COM_INTERFACE_ENTRY(IProvideClassInfo)
  58.     COM_INTERFACE_ENTRY(IProvideClassInfo2)
  59.     COM_INTERFACE_ENTRY(ISupportErrorInfo)
  60. END_COM_MAP()
  61.  
  62. BEGIN_PROPERTY_MAP(CSketcCtl)
  63.     PROP_ENTRY("PenWidth", 1, CLSID_SketcCtl)
  64. END_PROPERTY_MAP()
  65.  
  66.  
  67. BEGIN_MSG_MAP(CSketcCtl)
  68.     MESSAGE_HANDLER(WM_PAINT, OnPaint)
  69.     MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
  70.     MESSAGE_HANDLER(WM_KILLFOCUS, OnKillFocus)
  71.     MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
  72.     MESSAGE_HANDLER(WM_LBUTTONUP, OnLButtonUp)
  73.     MESSAGE_HANDLER(WM_MOUSEMOVE, OnMouseMove)
  74.     //MESSAGE_HANDLER(WM_LBUTTONDBLCLK, OnRButtonDown)
  75. END_MSG_MAP()
  76.  
  77.  
  78. // ISupportsErrorInfo
  79.     STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
  80.  
  81. // IViewObjectEx
  82.     STDMETHOD(GetViewStatus)(DWORD* pdwStatus)
  83.     {
  84.         ATLTRACE(_T("IViewObjectExImpl::GetViewStatus\n"));
  85.         *pdwStatus = VIEWSTATUS_SOLIDBKGND | VIEWSTATUS_OPAQUE;
  86.         return S_OK;
  87.     }
  88.  
  89. // ISketcCtl
  90. public:
  91.     STDMETHOD(Erase)();
  92.     STDMETHOD(get_PenWidth)(short *pval);
  93.     STDMETHOD(put_PenWidth)(short newVal);
  94.     HRESULT OnDraw(ATL_DRAWINFO& di);
  95.     LRESULT OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam,
  96.                                 BOOL& bHandled); 
  97.     LRESULT OnLButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam,
  98.                                   BOOL& bHandled); 
  99.     LRESULT OnMouseMove(UINT uMsg, WPARAM wParam, LPARAM lParam,
  100.                                   BOOL& bHandled); 
  101.  
  102.     BOOL bLBDown;
  103.     POINT line[2];
  104.     int left, right, top, bottom;
  105.     short m_PenWidth;
  106. };
  107.  
  108. #endif //__SKETCCTL_H_
  109.